Touchless and touch optimized processing of retail and other commerce transactions

ABSTRACT

A computer implemented method for reducing input performed in a commerce based application is provided. The method includes receiving a sequence of input values from an input device and associating the sequence of input values with an object in the application based on the sequence. A context of the application is determined. One or more tasks in the application are automatically performed based on the object, the context and the sequence of input values.

The present application is a continuation of and claims priority of U.S.patent application Ser. No. 11/097,353, filed Apr. 1, 2005, the contentof which is hereby incorporated by reference in its entirety.

BACKGROUND

The present invention relates to processing data from an input device.In particular, the present invention relates to performing tasks in acommerce application based on input data.

There are a number of different input devices that communicate with acomputer. For example, retail input devices can include a keyboard formanual input, a barcode scanner for scanning barcodes and a magneticstripe reader for reading a magnetic stripe on a credit card.Additionally, pointer devices, touch screens and other devices can beused. A commerce based application such as a retail software applicationrunning on the computer uses input data from these devices for a numberof different tasks, for example to process a transaction.

Typically, software applications require a prompt or other indication ofa particular input that the software application can expect. Thisprompting requires additional tasks to be performed by a user.Typically, the prompting is provided by a form of “touch” input device,where a user has to physically touch the device, such as a mouse,keyboard or touch screen. These additional input operations lead toincreased time in processing a transaction, mistakes and training costs.For example, in a simple one-item transaction, a user will need toprompt the application to expect input related to one or more items forpurchase, expect input related to customer information and expect inputrelated to a tender used for the transaction. Thus, there is a need toprovide an efficient manner for performing tasks based on input from aninput device.

The discussion above is merely provided for general backgroundinformation and is not intended to be used as an aid in determining thescope of the claimed subject matter.

SUMMARY

A computer implemented method for reducing input performed in a commercebased application is provided. The method includes receiving a sequenceof input values from an input device and associating the sequence ofinput values with an object in the application based on the sequence. Acontext of the application is determined. One or more tasks in theapplication are automatically performed based on the object, the contextand the sequence of input values.

Another aspect of the present invention relates to a commerce basedsystem having a computer with memory and at least one input port. Aplurality of input devices are operably coupled to the at least oneinput port to send a sequence of input values to the input port. Acommerce based application program is stored on the memory and operablycoupled to the at least one input port to receive a particular sequenceof input values from one of the plurality of input devices. Theapplication program includes an application context module defining acontext of the application program and a transaction processing moduleoperably coupled to the application context module. The transactionprocessing module is adapted to receive the particular sequence,associate the particular sequence with an object based on the sequenceand perform one or more tasks based on the object, the particularsequence and the context of the application program.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter. The claimed subject matter is not limited to implementationsthat solve any or all disadvantages noted in the background.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a general computing environment in whichthe present invention can be useful.

FIG. 2 is a block diagram of a plurality of input devices providinginput to a computer.

FIG. 3 is a flow diagram of a method for processing input from an inputdevice.

FIG. 4 is a block diagram of a retail application that receives inputfrom an external device.

FIGS. 5-9 are screen shots of a retail application that illustratestasks performed based on input from an input device.

DETAILED DESCRIPTION

Prior to discussing the present invention in greater detail, oneembodiment of an illustrative environment which the present inventioncan be used will be discussed. FIG. 1 illustrates an example of asuitable computing system environment 100 on which the invention may beimplemented. The computing system environment 100 is only one example ofa suitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the computing environment 100 be interpreted as havingany dependency or requirement relating to any one or combination ofcomponents illustrated in the exemplary operating environment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with the invention include,but are not limited to, personal computers, server computers, hand-heldor laptop devices, multiprocessor systems, microprocessor-based systems,set top boxes, programmable consumer electronics, network PCs,minicomputers, mainframe computers, distributed computing environmentsthat include any of the above systems or devices, and the like.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices. Tasks performedby the programs and modules are described below and with the aid offigures. Those skilled in the art can implement the description andfigures as processor executable instructions, which can be written onany form of a computer readable medium.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of acomputer 110. Components of computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

Computer 110 typically includes a variety of computer readable media.Computer readable media can be any available medium or media that can beaccessed by computer 110 and includes both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by computer 110. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of any of the aboveshould also be included within the scope of computer readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removablevolatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies.

A user may enter commands and information into the computer 110 throughinput devices such as a keyboard 162, a microphone 163, and a pointingdevice 161, such as a mouse, trackball or touch pad. Other input devices(not shown) may include a joystick, game pad, satellite dish, scanner,or the like. These and other input devices are often connected to theprocessing unit 120 through a user input interface 160 that is coupledto the system bus, but may be connected by other interface and busstructures, such as a parallel port, game port or a universal serial bus(USB). A monitor 191 or other type of display device is also connectedto the system bus 121 via an interface, such as a video interface 190.In addition to the monitor, computers may also include other peripheraloutput devices such as speakers 197 and printer 196, which may beconnected through an output peripheral interface 195.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a hand-helddevice, a server, a router, a network PC, a peer device or other commonnetwork node, and typically includes many or all of the elementsdescribed above relative to the computer 110. The logical connectionsdepicted in FIG. 1 include a local area network (LAN) 171 and a widearea network (WAN) 173, but may also include other networks. Suchnetworking environments are commonplace in offices, enterprise-widecomputer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user-inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on remote computer 180. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

FIG. 2 illustrates an environment wherein a plurality of input devicescommunicate with a computer 200, an example of which is described abovewith respect to FIG. 1. Computer 200 includes at least one application202 and an input device handler 204. A plurality of input devicesincluding a keyboard and/or a touch screen 212, a barcode scanner 214, amagnetic stripe reader 216 and a RF identification receiver 218communicate through at least one port 220 to computer 200. Asappreciated by those skilled in the art, other input devices, such as amagnetic ink character recognition (MICR) reader, may also be used inaccordance with the present invention and multiple input devices canshare a common form factor and/or input conduit.

Keyboard/touch screen 212 receives manual input from a user, barcodescanner 214 scans a barcode, magnetic stripe reader 216 reads a magneticstripe of a magnetic card and RF identification receiver 218 receivesradio frequency signals that are sent to port 220. In accordance withthe present invention, multiple ports similar to port 220 that areoperably coupled to separate input devices can also be used. Each of themultiple ports can provide information received from a respective inputdevice to input device handler module 204.

Input device handler 204 receives input from the plurality of devicesthrough at least one port 220 and sends the input to application 202. Inan exemplary embodiment, the input includes a sequence of input valuesthat relate to various information, such as a customer name, a productidentification number and a credit card account number. Application 202detects the input and automatically performs tasks based on the input.The tasks are also based on a particular context for the application. Inaccordance with an embodiment of the present invention, usingapplication 200, the need for use of keyboard/touch screen 212 can bereduced and in some cases eliminated during processing of a transaction.For example, a cashier need only use a scan, scan and swipe tocompletely process a transaction. Thus, operation of other input devicesthat use touching is minimized.

FIG. 3 is an exemplary method for processing input from an input devicein a commerce application. As discussed below, the input is processedbased on program heuristics to predict a logical flow for the input. Atstep 252, input from the input device is detected. For example, inputdevice handler 204 can detect input from any of the input devicesdescribed above. At step 254 a source and content of the input isdetermined. In one embodiment, the source and content of the input canbe determined in a manner described in U.S. application Ser. No.10/740,936, filed Dec. 19, 2003, entitled AUTOMATED INPUT DETERMINATION,the contents of which are hereby incorporated by reference in itsentirety. For example, if a sequence of sixteen input values isreceived, the sequence can indicate that a magnetic stripe readerprovided the input. Other methods of determining the source and contentcan be used. The sequence is associated with an object in theapplication based on the content and/or the source of the sequence atstep 255. Exemplary objects for a commerce application include a retailitem, a customer, a tender, an order a shipping notice, etc. The contextof an associated application is determined at step 256. The context canbe related to one or more aspects of the application, for example aparticular mode for the application, a location, a user, etc.

At step 258, one or more tasks (or actions) are automatically performedbased on the object, the context and the input. For example, these taskscan include a comparison of the input with an inventory list, a customerlist and/or a receipt list. Further tasks can additionally be performed,such as calculation of sales tax, requesting approval for a credit cardtransaction and/or presenting multiple options to a user. In someinstances, the context of the application is switched based on theinput. For example, the context can be switched from an initial made toa sales transaction made or a return void mode. The tasks that areperformed are determined from heuristics based on a logical flow for theapplication based on the input.

FIG. 4 is a block diagram of an exemplary commerce application 300 foruse with the present invention. Commerce application 300 includes anapplication context 302 and a transaction processing module 304. Anexternal device 306, which can be any of the input devices discussedabove, provides input to application 300, which is then sent totransaction processing module 304.

Transaction module 304 is based on program heuristics designed toreduce, and in some cases eliminate, input from a user of devices suchas a mouse and/or a keyboard. Based on the input of external device 306,transaction processing module 304 associates the input with an objectand utilizes a plurality of actions, herein shown as actions 1-N,depending on application context 302. The object can be an object asdiscussed above. Application context 302 includes a user context 308,location context 310 and object context 312. Other context associatedwith application context 302 can also be used.

User context 308 includes default behavior actions based on a particularuser for application 300. For example, the user may be an owner, amanager, a cashier, etc. Each of these user contexts can have varyingattributes, roles and permissions. For example, retail application 300can be designed such that only a manager or owner can void atransaction. Location context 310 is based on the location of retailapplication 300. For example, the location could be at a point of sale,a back office setting, a warehouse, etc. Location context 310 thusincludes default behavior actions based on the location. In a point ofsale context, scanning an item can populate a retail transaction withthe item's details. Object context 312 identifies various objects, suchas items, customers, tenders, transactions, receipts, etc. Transactionmodule 304 associates the input with one or more of these objects.Object context 312 includes default behavior actions based on usercontext 308, location context 310 and the one or more objects.

Given the application context 302, which includes user context 308,location context 310 and object context 312, transaction processingmodule 304 selects one or more actions based on the context and theinput from external device 306. For example, one action can be relatedto adding a customer to a transaction based on a customer scan of acustomer ID card. Another action can be related to adding an item to atransaction based on a bar code scan of an item's bar code. Yet anotheraction can be based on tendering an amount to a credit card based on acard swipe from a magnetic stripe reader.

Thus, in a store or other environment having bar coded inventory withcustomer cards and electronic credit or debit processing, a salescashier can complete a sales transaction without accessing input devicessuch as keyboards, pointer devices and/or touch panels. Instead, atransaction is completed with only a scan of an item, a scan of acustomer card and a swipe of the credit card. The transaction processingmodule 204, based on heuristics, compares the first scan to an inventorylist and adds an item to the transaction, the second scan adds acustomer to the transaction and the credit card swipe tenders the creditcard to the transaction and prints out a receipt.

FIGS. 5-9 are exemplary screen shots that illustrate tasks performed bya retail application based on input from an input device and a contextof the retail application. The retail application is at a point of salelocation. Heuristics can help to predict a logical flow for the retailapplication based on the input. For example, if a credit card is swipedafter items are entered in a transaction, the credit card is most likelythe tender for the transaction. It will be appreciated that the presentinvention can be implemented in other environments and/or locations, forexample in back office settings and shipping warehouses.

FIGS. 5-7 are screen shots for a single sales transaction. In FIG. 5, auser has scanned a bar code for an item. Input can also be provided froman RF identification receiver. The retail application determines thesource and the content of the input as discussed above. Based on thesource and content of the input, the input is associated with one ormore objects. The input here is associated with an inventory item. Acontext of the retail application is also determined In this case, thecontext is an initial mode. Based on the one or more objects, thecontext and the input, tasks are performed in the retail application.For the bar code scan, a comparison of the input is made with inventorydata, a customer list and/or a receipt list. As shown in FIG. 5, theretail application has located and matched the input with item number25000-010202. This item, along with any other information, isautomatically added to a sales transaction and a subtotal and tax forthe transaction are calculated. Furthermore the context of the retailapplication is updated to a sales transaction mode. In the salestransaction mode, further items that are scanned are automatically addedto the transaction.

FIG. 6 is a screen shot wherein a customer barcode has been scanned. Theinput is detected and associated with one or more objects. The contextof the application, herein the sales transaction mode, is alsodetermined In this case, the input is compared to a database and matchesa customer's information. This customer information is automaticallyadded to the transaction. In FIG. 7, a user has swiped a credit cardusing a magnetic stripe reader. The credit card information isassociated with a tender for the application. Since the retailapplication is still in the sales transaction mode, the tasks to beperformed include posting the transaction, tendering a sale amount tothe credit card, printing a sales receipt and opening a cash drawer. Asa result, a full transaction can be processed in the application usingonly the bar code scanner and the magnetic stripe reader. A user hasonly needed to scan an item, scan a customer card and swipe a creditcard. Thus, no manual input, for example, using a keyboard, pointerdevice and/or a touch panel is necessary from the user.

FIG. 8 is a screen shot for processing input in a retail application. Inthis case, a user has scanned an item and the input has been detected aswell as the context been determined. The input has matched multipleitems from a data source associated with the retail application. Theinput has matched an item (Softball Book) and a customer (John, Smith).Both of these options are presented to the user in order for the user toquickly select either option and continue with the transaction. Forexample, if the user scanned the item (Softball Book), the user caneasily select the softball book to be put into the transaction.

FIG. 9 is a screen shot wherein a user has scanned in a sales receipt,for example by using a bar code scanner. Automatically, the salesreceipt appears in a window of the retail application and variousoptions are presented to the user. The retail application is alsoupdated to a return void mode. Accordingly, if sale items are scannedand matched to an item in the sales receipt, a return void transactionwill begin.

Using the present invention discussed above, input from an input devicecan be automatically processed in order to reduce input required by auser. The tasks that are automatically performed by an application canbe based on heuristics that predict an intended action of the user. Forexample, given a retail point of sale context, scanning an item willautomatically populate a retail transaction with the item's detail, suchas a description, an item number and an amount. Further input canproduce additional processing tasks for the retail application. Asdiscussed above, the present invention can also be extended to otherinputs, input devices and/or contexts. For example, in a warehousesetting, a scanned item provided from an RF device can automaticallyenter an application into a shipping mode and print and send a shippingnotice.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A computer-implemented method, the methodcomprising: receiving, at a computer with a processor, a sequence ofvalues from a source user input device; determining, with the processor,a location of the source user input device; identifying one of aplurality of objects in a commerce application, with the processor, thatis associated with the sequence of values, the identified objectrepresenting a retail item in the commerce application; in response todetermining that the location is a point of sale location, automaticallyperforming, with the processor, a first task based on the location andthe identified one of the plurality of objects; and in response todetermining that the location is not the point of sale location,automatically performing, with the processor, a second task based on thelocation and the identified one of the plurality of objects.
 2. Thecomputer-implemented method of claim 1 wherein the sequence of inputvalues relates to a credit card number, and wherein the plurality ofobjects in the commerce application includes objects associated with, acustomer, a tender, an order, and a shipping notice.
 3. Thecomputer-implemented method of claim 1 wherein the one of the pluralityof objects is also identified based at least in part upon a role of auser.
 4. The computer-implemented method of claim 1 wherein receivingthe sequence of values comprises: receiving a sequence of values relatedto an identity of an item.
 5. The computer-implemented method of claim 4wherein performing the first task comprises: populating a transactionwith the item; and calculating an amount for the transaction.
 6. Thecomputer-implemented method of claim 5 wherein populating a transactioncomprises: populating a purchase transaction with the item.
 7. Thecomputer-implemented method of claim 6 further comprising: receiving asecond sequence of values related to a method of payment for the item.8. The computer-implemented method of claim 7 wherein the secondsequence comprises a sequence related to a credit card number andfurther comprising: automatically tendering a sale to a credit cardidentified by the credit card number.
 9. The computer-implemented methodof claim 8 and further comprising: automatically generating a salesreceipt for the sale.
 10. The computer-implemented method of claim 5wherein the item is a receipt.
 11. The computer-implemented method ofclaim 10 wherein populating a transaction comprises: populating a returntransaction with the item.
 12. A commerce based system, comprising: acomputer having memory and at least one input port; a user input devicecoupled to the input port; an application, stored on the memory,receiving a first sequence of values input through the input port by theuser input device, the application using the computer to identify aretail item object representing a retail item in the application basedon the first sequence of values, and to determine whether a location ofthe user input device is a point of sale location or a non-point of salelocation and automatically performing a first task, based on the retailitem object and the location, in response to determining that thelocation is the point of sale location, and automatically switching amode of the application and performing a second task, based on theretail item object and the location, in response to determining that thelocation is the non-point of sale location.
 13. The commerce basedsystem of claim 12 wherein the application receives a second sequence ofinput values, identifying an item that is a subject of a transaction,and populates the transaction with the item, and wherein the mode of theapplication determines at least in part what tasks are available for theapplication to perform.
 14. The commerce based system of claim 13wherein the application receives the second sequence of input valuesidentifying a product that is a subject of a sales transaction andpopulates the sales transaction with the product, wherein the mode ofthe application is associated with a sales transaction mode when thefirst task is performed, and wherein the tasks that are available to beperformed in the sales transaction mode include posting a transaction,tendering a sale amount to a credit card, printing a sales receipt, andopening a cash drawer.
 15. The commerce based system of claim 14 whereinthe application calculates an amount due for the sales transaction. 16.The commerce based application of claim 15 wherein the applicationreceives a third sequence of input values that identifies a method ofpayment for the sales transaction.
 17. The commerce based system ofclaim 16 wherein the application determines that the third sequence ofinput values identifies a credit card number, and tenders a sale basedon the credit card number.
 18. The commerce based system of claim 17wherein the application generates the sales receipt for the salestransaction.
 19. The commerce based system of claim 13 wherein theapplication receives the first sequence of input values identifying areceipt that is a subject of a return transaction and populates thereturn transaction with the receipt.
 20. A hardware computer readablestorage medium having computer readable instructions which, whenexecuted by a computer, cause the computer to perform a methodcomprising: receiving, at a computer processor, a sequence of valuesfrom a user input device; determining, with the computer processor, alocation of the user input device; identifying, with the computerprocessor, a given retail object, out of a plurality of different retailobjects, that represents a retail item in a commerce application, basedon the sequence of values; in response to determining that the locationof the user input device is a point of sale location, automaticallyperforming, with the computer processor, a first task with the commerceapplication based on the location and the given retail object; and inresponse to determining that the location of the user input device isnot the point of sale location, automatically performing, with thecomputer processor, a second task with the commerce application based onthe location and the given retail object.